<?php
	/** SNS 新浪微博類
	*	Date: 	2012-5-17
	*	Author:	merlin
	*/
	class SNS_QQWeibo {
		
		//qq微博sdk
		private $_sdk;

		//授權后的囘調地址
		private $redirect_uri;

		public function __construct(array $params) {
			$this->_sdk = $params['sdk'];
			$this->redirect_uri = $params['redirect_uri'];
		}
		
		/** 獲取weibo登入url */
		public function getLoginUrl() {
			return OAuth::getAuthorizeURL($this->redirect_uri);
		}
		
		public function api(){
			$args = func_get_args();
			$data = call_user_func_array(array($this->_sdk, 'api'), $args);
			return json_decode($data, true);
		}
		
		/** 獲取用戶信息 */
		public function getUserInfo() {
			$user_info = $this->api('user/info');
			return $user_info['data'];
		}

		/**
		 * 獲取主頁時間線
		 *
		 * @param int $pageflag 分页标识（0：第一页，1：向下翻页，2：向上翻页）
		 * @param int $pagetime 本页起始时间（第一页：填0，向上翻页：填上一次请求返回的第一条记录时间，向下翻页：填上一次请求返回的最后一条记录时间）
		 * @param int $reqnum 每次请求记录的条数（1-70条）
		 * @param int $type 拉取类型
							- 0x1 原创发表
							- 0x2 转载
							- 0x8 回复
							- 0x10 空回
							- 0x20 提及
							- 0x40 点评 
							如需拉取多个类型请使用|，如(0x1|0x2)得到3，此时type=3即可，填零表示拉取所有类型
		 * @param int $contenttype 内容过滤。0-表示所有类型，1-带文本，2-带链接，4-带图片，8-带视频，0x10-带音频
		 * @return array
		 */
		public function getHomeTimeline($pageflag = 0, $pagetime = 0, $reqnum = 50, $type = 0x1, $contenttype = 0) {
			$params = array(
				'pageflag' => $pageflag,
				'pagetime' => $pagetime,
				'reqnum'   => $reqnum,
				'type'     => $type,
				'contenttype' => $contenttype
			);
			$home_timeline = $this->api('statuses/home_timeline', $params);
			return $home_timeline;
		}

		/**
		 * 獲取單條時間線
		 *
		 * @param int $id 
		 * @return array
		 */
		public function getTimeline($id) {
			return $this->api('t/show', array('id' => $id));
		}
		
		/**
		 * 發表一條timeline(微博)
		 *
		 * @param string $content 內容
		 * @param int $pic_path 圖片路徑
		 * @param float $lat 緯度
		 * @param float $long 經度
		 * @param int $syncflag 微博同步到空间分享标记（可选，0-同步，1-不同步，默认为0）
		 * @return array
		 */
		public function addTimeline($content, $pic_path = null, $lat = NULL, $long = NULL, $syncflag = 0) {

			$params = array(
				'content' => $content,
				'syncflag' => $syncflag
			);
			if ($pic_path) {
				$api = 't/add_pic';
				$multi['pic'] = $pic_path;
			} else {
				$api = 't/add';
				$multi = false;
			}
			$lat && $params['wei'] = $lat;
			$long && $params['jing'] = $long;
			$timeline = $this->api($api, $params, 'POST', $multi);
			
			return $timeline;

		}

		/**
		 * 刪除一條timeline(微博)
		 *
		 * @param string $id timeline id
		 * @return array
		 */
		public function delTimeline($id) {
			return $this->api('t/del', array('id' => $id), 'POST');
		}

		/**
		 * 根據id獲取評論
		 *
		 * @param string $object_id timeline id
		 * @param array 額外參數
						- flag 	标识。0－转播列表 1－点评列表 2－点评与转播列表
						- pageflag 	分页标识（0：第一页，1：向下翻页，2：向上翻页）
						- pagetime 	本页起始时间（第一页：填0，向上翻页：填上一次请求返回的第一条记录时间，向下翻页：填上一次请求返回的最后一条记录时间）
						- reqnum 	每次请求记录的条数（1-100条）
						- twitterid 	翻页用，第1-100条填0，继续向下翻页，填上一次请求返回的最后一条记录id
		 * @return array
		 */
		public function getComments($object_id, array $params = array()) {
			return $this->api('t/re_list', array_merge(array(
				'rootid' => $object_id, 
				'flag' => 1,
				'pageflag' => 0,
				'pagetime' => 0,
				'reqnum' => 50
			), $params));
		}

		/**
		 * 評論
		 *
		 * @param int $id
		 * @param string $content
		 * @param int $forward 是否轉發到我的微博
		 * @param float $wei 緯度
		 * @param float $jing 經度
		 * @return array
		 */
		public function addComment($id, $content, $forward = 0, $wei = null, $jing = null) {
			$params = array(
				'reid' => $id,
				'content' => $content
			);
			$wei && $params['wei'] = $wei;
			$jing && $params['jing'] = $jing;
			$forward && $this->api('t/re_add', $params, 'POST');
			return $this->api('t/comment', $params, 'POST');
		}

		/**
		 * 刪除評論
		 *
		 * @param int $id
		 * @return array
		 */
		public function delComment($id) {
			return $this->api('t/del', array('id' => $id), 'POST');
		}

	}

?>